Computer systems often include peripheral devices connected to a host computer for performing various specialized functions. For example, many personal computer systems include a printer as a peripheral device for printing documents. Peripheral devices are connected to a host computer by an interface using a communications protocol. For instance, the printer peripheral device is typically connected to a personal computer system via a parallel interface. Other peripheral devices, such as modems, may be connected to a host computer via other interfaces, such as a serial interface.
Computer systems that include specialized peripheral devices for processing parcels, letters, and other types of mail are referred to as parcel processing systems. Typically, a parcel processing system includes a scale for weighing letters and parcels. Specialized printers, such as label printers and sheet printers, may be included. Other parcel processing systems include peripherals for providing metered postage, generally called postal meters.
There are many drawbacks in managing the specialized peripheral devices in conventional parcel processing systems. For example, these specialized peripheral devices often use specialized and proprietary interfaces for communication with a computer system. Thus, serial and parallel ports, which are industry-standard peripheral interfaces, do not work with these specialized peripheral devices.
A conventional approach for handling the non-standard interfaces of peripheral devices is to design and manufacture an interface card for plugging into the bus of a host computer for communication with the peripheral device. However, these interface cards are difficult to plug in and configure properly, often requiring the added expense of a service call by a computer technician. If the interface card is not properly configured, the peripheral device may mis-operate, causing customer dissatisfaction.
The costs associated with installing and configuring interface cards are incurred again when new peripheral devices are added to the parcel processing system. A new interface card may need to be designed, manufactured and shipped to the customer site, at which the old interface card is unplugged from the bus and replaced by the new interface card.
Another drawback in conventionally interfacing to peripheral devices is particularly acute when the host computer uses a windowing operating system. Typically, windowing operating systems are event-driven, in that applications running on top of the windowing operating system respond asynchronously to events that occur within the computer system. Many peripheral devices do not produce events that can be used by windowing operating systems; thus, a conventional approach is to write application software that polls the peripheral device for changes in state.
Another reason why application software for polling peripheral devices may need to be written is for keeping track of peripheral device usage. For example, in a parcel processing system, a postal meter peripheral device may include a feature for manual tripping, that is, a user can "trip" the meter to apply postage without going through the application software on the host computer of the system controlling the postal meter. Accordingly, accounting functions of the parcel processing system need to detect when a manual tripping of the postal meter has occurred. One approach to detecting a manual tripping is by using application software that polls the postal meter.
Polling the peripheral device in the application software, however, creates difficulties in many operating systems. Thus, application software or operating system software must be carefully written to periodically relinquish control back to the operating system or else the entire computer system would "hang." However, periodically interrupting the polling to perform other tasks reduces the real-time feedback and responsiveness of the host computer to the peripheral device.